#!/usr/bin/env node

const fs=require('fs'),
      join=require('path').join,
      src=process.argv[2],
      err=console.error;
//参数不存在
if(typeof src==='undefined'){
  err('请输入参数！');
}
//文件不存在
if(!fs.existsSync(src)){
  err('%s not exist!',src);
}
//删除文件
try{
  if(fs.statSync(src).isFile()){//判断是不是文件
    fs.unlinkSync(src);
  }

  if(fs.statSync(src).isDirectory()){
    deleteDir(src);
  }

}catch(e){
  err(e.message);
}
//删除目录
function deleteDir(folder){//  ./abc
  let files=fs.readdirSync(folder);//返回一个包含“指定目录下所有文件名称”的数组对象
  //[a,b]
  //console.log(files);
  
  for(let i=0;i<files.length;i++){//2
    var file=join(folder,files[i]);//拼接路径 ./abc/a
    
    if(fs.statSync(file).isFile()){//如果是文件直接删除
      fs.unlinkSync(file);
      //console.log(file);
      continue;
    }

    if(fs.statSync(file).isDirectory()){//如果是目录继续调用递归函数
      deleteDir(file);
    }
  }
  
  fs.rmdirSync(folder);//以同步的方式删除！空目录！ 删除 ./abc，包括所有的子空目录
  //console.log(file);
}

